//
//  EmoticonAttachment.swift
//  03-表情键盘
//
//  Created by 房城鸿 on 15/10/19.
//  Copyright © 2015年 房兰峰. All rights reserved.
//

import UIKit

class EmoticonAttachment: NSTextAttachment {
    
    // 表情文字
    var chs:String
    init(chs:String){
        self.chs = chs
        super.init(data: nil, ofType: nil)
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    class func emoticonAttributeText(emoticon:Emoticon ,font:UIFont) ->NSAttributedString{
        // 3. 表情图片 .一定有图片
        // 注意，如果是单纯的复制，会造成覆盖，所以需要处理一下
        let attachment = EmoticonAttachment(chs: emoticon.chs!)
        //记录表情符号
        
        attachment.image = UIImage(contentsOfFile: emoticon.imagePath)
        
        //MARK: - 图片高度
        // lineHegiht 是字体的行高
        let height = font.lineHeight
        
        //bounds 的 X/Y 就是scrollerView 的contentOffset ，苹果利用 bounds 的X/Y 能够调整控件内部的偏移位置
        attachment.bounds = CGRect(x: 0, y: -4, width: height, height: height)
        
        //MARK: - 解决表情图片的大小不一致的问题
        //1. 创建图片属性字符串
        let imageText = NSMutableAttributedString(attributedString: NSAttributedString(attachment: attachment))
        //2. 添加 “字体”
        imageText.addAttribute(NSFontAttributeName, value: font, range: NSRange(location: 0, length: 1))
        
        return imageText

    }
    

}
